package com.kamistoat.meimeimall.meimeimallmember.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kamistoat.meimeimall.common.To.memberTo.LoginSuccessTo;
import com.kamistoat.meimeimall.common.To.memberTo.RegisterMemberTo;
import com.kamistoat.meimeimall.meimeimallmember.entity.MemberEntity;

import java.util.Map;

/**
 * 会员
 *
 * @author kamistoat
 * @email linjianshanke@163.com
 * @date 2021-09-12 16:36:46
 */
public interface MemberService extends IService<MemberEntity> {

    /**
     * 自己写的服务层接口，注册用户信息
     *
     * @param registerMemberTo To
     */
    void registerMember(RegisterMemberTo registerMemberTo);

    /**
     * 登录。
     *
     * @param loginAccount 账户
     * @param password     密码
     */
    LoginSuccessTo login(String loginAccount, String password);

    /**
     * 带缓查询用户Entity
     *
     * @param id 用户Id
     */
    MemberEntity getMemberEntityById(Long id);

    /**
     * 带缓更新用户Entity
     *
     * @param memberEntity 用户Entity
     */
    void updateMemberEntity(MemberEntity memberEntity);

    /**
     * 带缓更新密码
     * @param old_password 旧密码
     * @param new_password 新密码
     */
    void updatePassword(Long userId, String old_password, String new_password);

    /**
     * 修改密码时发送短信验证码
     * @param phoneNum
     */
    void sendCodeWhenFixPassword(String phoneNum);

    /**
     * 修改密码时验证短信验证码
     */
    void verifyCodeWhenFixPassword(String phoneNum, String check_code);

    /**
     * 生成测试数据
     */
    void constructTestMemberData(Integer memberNum);
}

